package redis

import (
	"fmt"
	"github.com/garyburd/redigo/redis"
)

//
//	AccessRedis
//	@Description:
//
func AccessRedis() {
	fmt.Println("ok")
	// 连接Redis
	fmt.Println("连接Redis……")
	conn, err := redis.Dial("tcp", "127.0.0.1:6379")
	if err != nil {
		fmt.Println("redis.Dial err=", err)
		return
	}

	fmt.Println("conn suc=", conn)

	// 写入数据
	fmt.Println("写入Redis……")
	_, err = conn.Do("Set", "name", "venki.chen")
	if err != nil {
		fmt.Println("Set err=", err)
		return
	}

	fmt.Println("Set suc")

	// 读取数据
	fmt.Println("写入Redis……")
	r, err01 := redis.String(conn.Do("Get", "name"))
	if err01 != nil {
		fmt.Println("Set err=", err01)
		return
	}
	fmt.Printf("Set suc,name=%v\n", r)

	// 操作哈希
	fmt.Println("写入Redis……")
	_, err = conn.Do("HSet", "username01", "name", "venki.chen")
	if err != nil {
		fmt.Println("Set err=", err)
		return
	}

	fmt.Println("Set suc")

	_, err = conn.Do("HSet", "username01", "age", 18)
	if err != nil {
		fmt.Println("Set err=", err)
		return
	}

	fmt.Println("Set suc")

	// 读取数据
	fmt.Println("写入Redis……")
	r01, err02 := redis.String(conn.Do("HGet", "username01", "age"))
	if err02 != nil {
		fmt.Println("Set err=", err02)
		return
	}
	fmt.Printf("Set suc,age=%v\n", r01)

	r02, err03 := redis.String(conn.Do("HGet", "username01", "name"))
	if err03 != nil {
		fmt.Println("Set err=", err03)
		return
	}
	fmt.Printf("Set suc,name=%v\n", r02)

	// 批量设置
	fmt.Println("写入Redis……")
	_, err = conn.Do("HMSet", "username01", "name", "venki.chen", "age", 29, "sex", "1")
	if err != nil {
		fmt.Println("Set err=", err)
		return
	}

	fmt.Println("读取Redis……")
	r03, err04 := redis.Strings(conn.Do("HMGet", "username01", "name", "age", "sex"))
	if err02 != nil {
		fmt.Println("get err=", err04)
		return
	}
	for index, value := range r03 {
		fmt.Printf("第[%d]个值是：%v\n", index+1, value)
	}
}
